package com.hd.core.project.module.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.github.pagehelper.util.StringUtil;
import com.hd.core.project.module.domain.Classes;
import com.hd.core.project.module.domain.Student;
import com.hd.core.project.module.mapper.ClassRosterMapper;

/**
 * 班级花名册-服务层
 * 
 * <br/>
 * @since JDK 1.8
 * @version  V1.0
 * @author RichardTang 
 * @date: 2018年9月6日
 * @package com.hd.core.project.module.service
 * @copyright:Copyright (c) 2018, 1245811923@qq.com All Rights Reserved.
 */
@Service
public class ClassRosterService extends ServiceImpl<ClassRosterMapper, Student> {

	@Autowired
	private StudentService studentService;
	
	@Autowired
	private ClassesService classesService;
	
	/**
	 * <p>根据教师用户的ID和实体条件来查询所对应的班级的学生</p>
	 * <p>该方法重载父类的selectList方法</p>
	 * 
	 * @param entity 条件实体 (姓名,性别,手机号)
	 * @param userId 用户ID
	 * @return 根据条件后查询出来的数据
	 */
	public List<Student> selectList(Student entity,Long userId) {
		return baseMapper.selectList(entity,userId);
	}
	
	/**
	 * <p>添加一名学生,给当前教师用户的班级添加</>
	 * <p>先根据userId查询到班级,在通过获取到的班级ID来插入学生数据</p>
	 * 
	 * @param entity 数据实体
	 * @param userId 教师ID(当前操作用户的ID)
	 * @return 成功数据条数
	 */
	public boolean insert(Student entity,Long userId) {
		boolean resultFlag = false;
		Classes classInfo = classesService.selectClassByTeacherId(userId);
		if(classInfo != null && StringUtil.isNotEmpty(classInfo.getId())) {
			entity.setNowClassId(classInfo.getId());
			resultFlag = studentService.insert(entity);
		}
		return resultFlag;
	}
	
	/**
	 * <p>根据id来删除学生,并且减少相应的班级数据</p>
	 * <p>{@link StudentListService}</p>
	 * 
	 * @param ids 需要被删除的学生的id集合
	 * @return 是否删除成功
	 */
	public boolean deleteStudents(List<String> ids) {
		return studentService.delete(ids);
	}
}
